#include <vector>
#include "common.h"
#ifdef USE_GPU
#include "resource_gpu/resource_optical_gpu.h"
#elif defined(USE_NPU)
#include "resource_npu/resource_optical_npu.h"
#else
#include "resource_cpu/resource_optical_cpu.h"
#endif

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

#ifdef USE_GPU
    ResourceOpticalGPU gpu;
    std::cout<<"main gpu"<<std::endl;
    gpu.printAllValues(vec);
    gpu.printLengthAndSum(vec);
#elif defined(USE_NPU)
    std::cout<<"main npu"<<std::endl;
    ResourceOpticalNPU npu;
    npu.printAllValues(vec);
    npu.printLengthAndSum(vec);
#else
    std::cout<<"main cpu"<<std::endl;
    ResourceOpticalCPU cpu;
    cpu.printAllValues(vec);
    cpu.printLengthAndSum(vec);
#endif

    return 0;
}